package main

import (
	"fmt"
	"strconv"
	"strings"
)

//字符串相关函数
func main() {
	str1 := "aaaa张三"
	//1 长度按字节返回， 一个中文占三个字节(utf-8)
	le := len(str1)

	fmt.Println(le)

	//2 遍历中文字符串
	str2 := "234923王五"
	for i := 0; i < len(str2); i++ {
		fmt.Printf("遍历的数据 %v \n", str2[i])
	}

	//3 先转成切换再遍历 []rune 转切片数组
	r := []rune(str2)
	for j := 0; j < len(r); j++ {
		fmt.Printf("转切换遍历的数据: %c \n", r[j])
	}

	//4 字符串转整数
	n, err := strconv.Atoi("ewfwe")
	if err != nil {
		fmt.Println("转换错误: ", err.Error())
	} else {
		fmt.Println("转换正确, ", n)
	}

	//5 整数转字符串
	str3 := strconv.Itoa(1242)
	fmt.Println("整数转字符串 , ", str3)

	//6 字符串转byte数组
	str4 := []byte("1249o12wfjqwr")
	fmt.Printf("字符串转byte数组 %v \n", str4)

	//7 不区分大小写
	b := strings.EqualFold("abc", "Abc")
	fmt.Println("不区分大小写: ", b)

	b = "Abc" == "abc"
	fmt.Println("区分大小写: ", b)

	// 8获取指定字符的位置
	var parStr = "abcabcabdsf"
	index1 := strings.Index(parStr, "ab")
	index2 := strings.LastIndex(parStr, "ab")
	fmt.Println("ab 第一次出现的位置: ", index1, "最后一次出现的位置: ", index2)

	//
	var bol bool = true
	fmt.Printf(" bol的值 %v", bol)

}
